Multicast of computer packets from a source station to a plurality of destination stations has been provided for in standard computer engineering since the early days of computer networking, as illustrated by the description by Radia Perlman in her book Interconnections, published by Addison Wesley, Copyright date 1992, all disclosures of which are incorporated herein by reference, particularly at page 26 where the group/individual bit at the last position of the first octet of the destination address is discussed.
A multicast session conducted over a large computer network requires that routers route packets from the source station to the various destination stations. For example, a router receiving a multicast packet may have many ports through which it could route the packet, but it is wasteful of network bandwidth for the router to transmit the packet on any port which does not reach a multicast destination station. Accordingly, routers must maintain state information for multicast groups so that the router will “know” which ports to which it should route the multicast packets received by the router. Multicast addresses use a plurality of bits to indicate a group number, and so the router must maintain lists of multicast groups, along with the ports to which a received packet must be routed. With many multicast groups being transmitted over a large computer network, such, as for example, the worldwide Internet, the amount of state information which a router must store becomes too large to be easily managed. Accordingly, conventional multicast systems are limited by the storage capacity of routers in the number of simultaneous multicast sessions which they can maintain.
Conventional multicast builds a tree structure from the source of a multicast stream to the destination stations of that stream. The collection of multiple destination stations is known as a multicast group. A multicast group may have one or more stations supplying the multicast packets. Multicast packets are forwarded from the source down the tree by each intervening router. Each router contains state information to determine the next hop forwarding destination(s) for a packet. For each source/group pair [S, G] the router holds information describing the expected inbound interface and the set of outbound interfaces. Where there are multiple outbound interfaces, the packet is duplicated and forwarded over each interface.
It is attractive to consider the use of multicast to provide applications such as n-way voice and video conferencing. Clearly the numbers of groups required by such applications when widely deployed could reach millions. However, the state information scaling problem rules out conventional multicast for such applications.
A possible solution is to encode the wrapper with only the final destination addresses, either end stations or routers. However, this method imposes a requirement on all intermediate routers implementing the method to perform processing effort in looking at these addresses. This additional processing effort makes such a scheme unsatisfactory.
There is needed a multicast system which can scale to millions of multicast groups, and not overload intermediate routers with state information or additional route lookup processing.